package account;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import java.sql.*;

public class AccountModify extends HttpServlet
{
	Connection conn;

	 public boolean setPass(String usuario,String oldPass, String newPass){ 
			try
			{  
		          Class.forName("org.postgresql.Driver").newInstance();  
		    }
			catch (Exception e)
			{  
		    }  
			try {
				conn = DriverManager.getConnection("jdbc:postgresql://localhost/mc436","root","G6sAK8ea"); 
			} catch (SQLException e) {
				System.err.println("Nao foi possivel obter conexao com banco!");
				e.printStackTrace();
			}  
				try{
					 Statement st0 = conn.createStatement();
			         ResultSet rs = st0.executeQuery("SELECT * FROM usuarios");
			         while (rs.next()) {
			             if(rs.getString("login").equals(usuario) && rs.getString("password").equals(oldPass))
			             {

			    	         PreparedStatement st = conn.prepareStatement("UPDATE usuarios SET password='" + newPass +"' WHERE login='"+usuario+"'");
			    	         st.executeUpdate();
			    	         st.close();
			    	         return true;
			             }
			         }
			         st0.close();
				
	         	
			}
			catch(Exception e){
				e.printStackTrace();
			}
			return false;
	}
	 
	 
	private static final long serialVersionUID = 1L;

	public void doPost(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException 
	{
		this.doGet(request, response);
	}
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException 
	{
		String newPass = String.valueOf(request.getParameter("newPass"));
		String oldPass = String.valueOf(request.getParameter("oldPass"));
		String usuario = String.valueOf(request.getSession().getAttribute("userName"));
		String page = String.valueOf(request.getParameter("page"));
		

		
		if(request.getSession().getAttribute("loginState").equals("logged") && !newPass.equals("null"))
		{
			if(setPass(usuario, oldPass, newPass))
			{
				request.getSession().setAttribute("password", newPass);
				request.getSession().setAttribute("oldPass", oldPass);
				request.getSession().setAttribute("userName", usuario);
				request.getSession().setAttribute("loginStatus", "logged");
				
				RequestDispatcher rdIndex = request.getRequestDispatcher(page);
				rdIndex.forward(request, response);
			}
			else
			{
				request.setAttribute("changed", "error");
				RequestDispatcher rdIndex = request.getRequestDispatcher(page);
				rdIndex.forward(request, response);
			}
		}
		else
		{
			request.setAttribute("changed", "error");
			RequestDispatcher rdIndex = request.getRequestDispatcher(page);
			rdIndex.forward(request, response);
		}
	}
	
}
 